Move-Game-Kit: 基于 Move 构建 Autonomous World
https://move-game-kit.rootmud.xyz/
https://move-game-kit.rootmud.xyz/
当前,Move 语言的潜力仍处于非常早期,待挖掘的状态。但是,已然让我们看到了全新的可能。我们可以在更加坚实的基础上构建 Web3。其中,Autonomous World 是其中非常重要的方向。
就当前而言,现有的全链游戏大部分是在 EVM 的架构下构建的,原因就是 Ethereum 生态已经有了大量的用户基础。我们可以看到一些历史性的工作:
aw:https://aw.network/ MUD Framework:https://mud.dev/
然而,如果着眼未来,我们会发现 EVM-based AW 并不是好的选择 —— 在 EVM 架构加构建 Autonomous World,需要耗费大量的成本,来弥补 EVM 架构在设计之处的缺陷。
三条重要的 ——
合约的可升级问题
EVM 架构下,合约升级需要使用非常 Tricky 的方式。因此,协议和应用一旦部署便难以升级。例如,我们看到 Uniswap v1/v2/v3 基本可以看做三个不同的并行的协议,这也让基于协议的应用开放方付出了高昂的成本。
在 Move 架构下,合约具备天然的向前兼容的可升级性。
合约间的互操作性
EVM 架构下,合约之间的互操作性 so weak。因此,我们难以将各个合约,像传统计算机世界中的 Modules 一样,进行高效、优雅的组合,然而,这一点对于构建复杂世界来说至关重要。
想想 Web2 中的成功游戏吧!那些经久不衰的游戏世界,例如 Minecraft,会有大量的插件(Plugins)和模组(Mod),UserGC 是其魅力和生命力所在。
幸运的是,在 Move 架构下,我们可以用非常自然的方式进行合约间通讯,这个重要的前提假设不再是阻碍了!
抽象钱包
EVM 架构下,用传统的钱包作为 Autonomous World 的基础账户,存在很多缺陷。例如一个最直接的 —— 在 EVM-based Automous World 中的每一步操作都需要发生钱包交互,用户体验差。因此,EVM 架构下需要设计出新的「补丁」来去处理这些问题,例如 AA 钱包
和 ZK
技术。
然而,Move 的账户体系下,钱包天然可替换私钥,因此,我们可以通过一种简单的「托管钱包」+ DID 的方案解决这个问题。
+---------+
| MoveDID |----- main acct
+---------+ 替换私钥 替换私钥
+---------- autonomous world acct ---------> 托管 acct ---------> 传统 acct
↓
use in autonomous world
↑
基于多种恢复方案的 acct 找回机制
0x02 从协议开始的 Autonomous World 设计原则
2.1 从协议开始
从协议开始,是 Web3 世界的重要方法论,甚至也是 Web2 世界的应该采用的重要方法论。任何一个终局是丰富生态的系统,最初的起点都是 简单的。
在非常简单的机理下,无机物中诞生出有机物,最终构建了令人惊叹的🌏地球生态系统。
同样的,Minecraft 诞生于 2010 年,历经 14 年的时间,最终构建出同样令人惊叹的 Minecraft 生态。而 Minecraft 的最简核心同样是一个简单的协议 —— Craft 控制台。
2.2 协议设计方法论
The Protocol should be simple enough.
协议需要足够的简明。让我们不局限于 Web3 World,而是把时间拉长到计算机发展史中。
我们可以看到,所有能存活下来的协议必然是封装后简明的,这是计算机科学的基础原则。
例如,http
协议解决的问题可以用一句话来概括 —— 客户端如何和服务端通讯?
同样的,bodhi
协议解决的问题同样可以用一句话来概括 —— 如何让存储于 Arweave 的任意实体代币化?
但是,我们翻看目前在 Web3 World 中的很多协议的问题,会发现它们复杂得难以置信,以至于开发者需要穷经皓首漫长的岁月才能开始开发,而这是不符合计算机设计原则的。
The Upgrade of Protocol should be slow.
此外,协议的升级不应过于频繁。我们可以看到,1999 年 http 具备了 1.1 版本,然而在 2015 年才更新到 http 2.0,协议的快速更迭只会导致开发者们的厌弃。
0x03 Move-based Autonomous World 的基础协议
3.1 Movecraft
Movecraft 是去中心化的合成台协议,也即 Minecraft 中的 Craft 在 Autonomous World 中的协议化版本。
3.2 Movecraft 在 Movecraft Ecosystem 中的位置
作为高度抽象和元素合成协议,Movecraft Protocol 可以适配到绝大多数不同类型的游戏之中,从而给游戏带来如下优势:
增强可玩性与 UserGC 性
通过合成玩法增强游戏的可玩性,和 UserGC 性。
共享用户池
所有 Movecraft Cells Hodlers 天然的是各个游戏的玩家,Movecraft Ecosystem 中的所有游戏共享用户池。
3.3 MoveDID
MoveDID 是基于 Move 架构的,遵循 W3C DID 规范的模块化 DID 协议,在 2022 年发布其 1.0 版本。
MoveDID 具备如下特性:
多主体支持
MoveDID 支持包括 Human
、DAO/Organization
、AI Agents
、Bot
、Github Repo
在内的多种主体,将其统一抽象为DID Subject
,遵循统一的DID Syntax
和DID Documentation
规范。
模块化
以下是 MoveDID 的文件结构树
.
├── addr_aggregator.move
├── addr_aptos.move
├── addr_bitcoin_verfificated_offline.move
├── addr_eth.move
├── addr_info.move
├── eth_sig_verifier.move
├── init.move
├── service_aggregator.move
├── utils.move
模块化
是 MoveDID 协议在设计之处考虑的重点要素,也是其和不可扩展的 DID on Ethereum
方案的最大区别。
如果要支持新的地址格式,那么参考addr_aptos.move
和addr_eth.move
添加新的addr_*.move
模块即可。
3.4 MoveDID 在 Movecraft Ecosystem 中的位置
在目前的全链游戏世界中,不同游戏的账号尚未实现互通,从而无法建立「全面的玩家画像」:
Autnomous World Now(2024)
+-----------------------+
| Acct 0x1 for Game 0x1 |----- Data based on Game 0x1
+-----------------------+
---------------------- Isolated ----------------------
+-----------------------+
| Acct 0x2 for Game 0x2 |----- Data based on Game 0x2
+-----------------------+
---------------------- Isolated ----------------------
+-----------------------+
| Acct 0x3 for Game 0x3 |----- Data based on Game 0x3
+-----------------------+
基于 MoveDID 的Addr Aggregator
和Service Aggregator
,我们将Movecraft Autonomous World
中的账号统合在一个主体上,从而让玩家的数据「可沉淀」,成为「终身可成长账号」。
Movecraft Autonomous World
+-----------------------+
MoveDID--| Acct 0x1 for Game 0x1 |----- Data based on Game 0x1----+
| | +-----------------------+ |
| | |
| +-----------------------+ |
| | Acct 0x2 for Game 0x2 |----- Data based on Game 0x2----------+---- DID Documentation
| +-----------------------+ |
| |
| +-----------------------+ |
+--| Acct 0x3 for Game 0x3 |----- Data based on Game 0x3----------+
+-----------------------+
3.5 为什么 DID 的尝试在 Ethereum 中失败了?
DID 在上一轮周期还是一个有一定热度的赛道,但在本轮牛市中 DID 项目却已寥寥无几,因此 —— 许多人认为 DID 是个并不存在的叙事。
然而,笔者认为,DID 一直没有起势的原因在于,DID 是「社会刚需」而非「金融刚需」。DID 的叙事成立将建立在 De-Society 的基础上。
至少到目前,Ethereum 的愿景是构建去中心化金融世界。因此,在 Ethereum 中,我们不需要完整的身份,需要的仅仅是包含余额和交易记录的金融账号。甚至,现在交易记录也被认为没那么重要,所以我们看到了 permit
这种人神公愤的设计 —— 这种设计的导向就是所有人都养成使用临时账号的习惯。
只有在「去中心化社会」的愿景下,DID 才是刚需,我们需要掌握自己的社会身份。
去中心化社会的四层结构:
+---------------------+
De-Society
+---------------------+
Communities
+---------------------+
Credit & Credentials
+---------------------+
DID with Metadata
+---------------------+
所以,是否相信 DID 是未来,实质上可以等价为「是否相信 De-Society 是未来」?
至于后一个问题,就看每个人自己的答案了。
0x04 Move-based Autonomous World 核心哲学 —— 分离游戏抽象逻辑层和渲染层
五色令人目盲;五音令人耳聾;五味令人口爽。
—— 老子·十二
滑溜先生能感到沼地的湿气渗进皮靴,虽然天气很冷,他还是开始冒汗。实际上,这些感觉并不完全来自带宽。脑关电极传送的只是某种暗示,相当于舞台上的提词,滑溜先生的想象力与潜意识对这些暗示做出反应,形成与现实世界毫无二致的真是感受。这种从暗示到感受的转化过程相当于翻译,不能想怎么译解就怎么译解,任意而为的结果便是被甩回现实世界,永远别想找到巫师会的入口。对于另一层面的旅行者来说,只要存在暗示,周围环境的细节便历历在目。这种事情并不新奇,古已有之。例如小说,哪怕是个蹩脚的作者,只要善解人意,加上情节抓人,他也能只用几句描写便唤起读者心中的全幅想象场景。现在的区别是想象有了互动性,就像在真实世界里人们可以用自己的感官与周围环境互动一样。单凭想象便能调动事物,在人类数千年形成的语汇中,要描述这种现象,说到底还是魔法行话最为合适。
—— 真名实姓 by 弗诺·文奇
在目前的阶段,当我们谈及链上游戏,大家所谈论的还是 Web2 游戏的一种 Web3 延伸。例如,我们如何玩到具备链上交互的 Web3 3A 大作?
然而,这种思路忽略了 Web3 的一大核心,也就是 * Generate Content,这其中包含三类:User Generate Content
、Developer Generate Content
和AI Generate Content
。
4.1 游戏发展简史 —— 从 Play 到 Create
User only Play User Play & Create User/Developer/AI Play & Create
<--------------------------------------*---------------------------------------->
Ping-Pong Mincraft Movecraft Autonomous World
最开始出现的电子游戏,用户是纯粹的玩家,例如 Ping-Pong、极品飞车、RPG 等等一系列的电子游戏。
之后随着游戏的进化,用户逐渐参与到游戏世界中的构建中来,这一类型的游戏中最经典的就是Minecraft
。
有时候,Developers 也会参与到游戏世界的构建之中,例如我们所熟知的各种游戏模组(Mod)。
随着 AI 技术的迅猛发展,参与者出现了第三类主体:AI。然而,AI 对游戏世界的构建仍处于早期摸索阶段,但 AIGC一定是未来的重要环节。
所以,如果我们着眼未来,那么未来的 Autonomous World一定是强Creator
的逻辑,而且会 由三种主体共同参与 —— User、Developer 和 AI。
4.2 抽离游戏抽象逻辑层和渲染层
实际上,将游戏的渲染层剥离掉的尝试一直是游戏中重要的分支。例如:
Dwarf Fortress —— 游戏通过简单的 ASCII 构建出复杂度惊人的游戏世界; Minecraft —— 丰富世界完全由简单的 块(Block)
所组成。
然而,由于 Web2 世界天然的特性,这些游戏并未能够提供规则支撑,让 User/Develoepr/AI 来自行构建渲染层。
基于 Move Smart Contract,我们却天然可以做到这一点 —— Smart Contracts 构建游戏抽象逻辑层 —— 也就是游戏的抽象玩法。
在抽象逻辑层中,游戏角色、道具,亦或游戏中的任意实体,可以被抽象为 Objects,世界便是 Objects 之间的交互。
User、Developer、AI 将 Objects 渲染为 User Interface,最终面向玩家。
💡如果一个游戏具备「真正的可玩性」的话,那么即使界面异常简陋,例如是纯 Ascii 的游戏,那么这个游戏的生态也是能建立起来的。否则,即使使用豪华的虚幻 5 引擎,那么这个游戏仍然是一坨被精心包装过的垃圾。